﻿using System;

namespace MuZa.MuZa
{
    internal class Resource
    {
        private int AvailableQuantity;
        private double Cost;
        private String Name;
        private int TotalDurationHours;
        private string Type;
        private string start_location;
        private string end_location;

        /**
         *
         */

        public Resource()
        {
        }

        /**
         *
         * @param Type
         * @param Name
         * @param Cost
         * @param AvailableQuantity
         * @param TotalDurationHours

         */
        /////////////////////////

        /// <summary>
        ///
        /// </summary>
        /// <param name="Type">Type of the Resource (Product, Transportation)</param>
        /// <param name="Name">Name of the Resource (A, Truck, TrainA, TrainB)</param>
        /// <param name="Cost">Unit Cost</param>
        /// <param name="AvailableQuantity">Available Quantity</param>
        /// <param name="TotalDurationHours">Duration (in hours) to perform the job</param>
        /// <param name="start_location">Starting Location</param>
        /// <param name="end_location">End Location</param>
        public Resource(string Type, string Name, double Cost, int AvailableQuantity, int TotalDurationHours, string start_location, string end_location)
        {
            this.Type = Type;
            this.Name = Name;
            this.Cost = Cost;
            this.AvailableQuantity = AvailableQuantity;
            this.TotalDurationHours = TotalDurationHours;
            this.start_location = start_location;
            this.end_location = end_location;
        }

        public Resource(string Type, string Name, double Cost, int AvailableQuantity, int TotalDurationHours)
        {
            this.Type = Type;
            this.Name = Name;
            this.Cost = Cost;
            this.AvailableQuantity = AvailableQuantity;
            this.TotalDurationHours = TotalDurationHours;
        }

        /**
         *
         * @return
         */

        public int getAvailableQuantity()
        {
            return AvailableQuantity;
        }

        /**
         *
         * @param AvailableQuantity
         */

        public void setAvailableQuantity(int AvailableQuantity)
        {
            this.AvailableQuantity = AvailableQuantity;
        }

        /**
         *
         * @return
         */

        public double getCost()
        {
            return Cost;
        }

        /**
         *
         * @param Cost
         */

        public void setCost(double Cost)
        {
            this.Cost = Cost;
        }

        /**
         *
         * @return
         */

        public String getName()
        {
            return Name;
        }

        /**
         *
         * @param Name
         */

        public void setName(String Name)
        {
            this.Name = Name;
        }

        /**
         *
         * @return
         */

        public int getTotalDurationHours()
        {
            return TotalDurationHours;
        }

        /**
         *
         * @param TotalDurationHours
         */

        public void setTotalDurationHours(int TotalDurationHours)
        {
            this.TotalDurationHours = TotalDurationHours;
        }

        /**
         *
         * @return
         */

        public string getType()
        {
            return Type;
        }

        /**
         *
         * @param Type
         */

        public void setType(string Type)
        {
            this.Type = Type;
        }

        /**
         *
         * return
         */

        public string getStartLocation()
        {
            return start_location;
        }

        /**
         *
         * @param start_location
         */

        public void setStartLocation(string start_location)
        {
            this.start_location = start_location;
        }

        /**
        *
        * return
        */

        public string getEndLocation()
        {
            return end_location;
        }

        /**
         *
         * @param end_location
         */

        public void setEndLocation(string end_location)
        {
            this.end_location = end_location;
        }
    }
}